<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
	<meta http-equiv="pragma" content="no-cache" />
    <meta name="author" content="Jayli" />
	<meta name="keywords" content="淘宝UED 前端工程师 拔赤" />	
	<meta name="description" content="淘宝前端工程师拔赤，关注尖端前端技术，关注yui" />
	<meta http-equiv="imagetoolbar" content="no" />
	<meta name="title" content="拔赤的文章列表" />
    <title>雅虎那经典的实用美学</title>
    <link href="http://jayli.github.com/blog/atom.xml" rel="alternate" title="setImpl" type="application/atom+xml" />
    <link rel="stylesheet" href="http://jayli.github.com/blog/media/css/style.css">
    <link rel="stylesheet" href="http://jayli.github.com/blog/media/css/github.css">
	<style>
	</style>
    <script type="text/javascript" src="http://jayli.github.com/blog/media/js/highlight.pack.js"></script>
    <script type="text/javascript">
      hljs.initHighlightingOnLoad();
    </script>
	<!--[if lte IE 8]>
	<script src="http://a.tbcdn.cn/apps/lottery/00023/index-v3/js/html5.js"></script>
	<![endif]-->
	<meta name="baidu-tc-verification" content="afb6c9df553ef3493d9ee65263df0d55" />
	<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script><script type="text/javascript">uaredirect("http://m.zoojs.org", "http://jayli.github.com/blog");</script>
  </head>
  <body>
    <div id="container">
      <div id="main" role="main">
        <header>
        <h1>雅虎那经典的实用美学</h1>
        </header>
        <nav>
        <span><a title="home page" class="" href="/blog/index.html">home</a></span>
        <span><a title="tags" class="" href="/blog/tags.html">tags</a></span>
        <span><a title="about" class="" href="/blog/about.html">about me</a></span>
        <span><a title="flickr" class="" href="http://www.flickr.com/photos/lijing00333">flickr</a></span>
        <span><a title="blogroll" class="" href="/blog/links.html">links</a></span>
        <span><a title="projects" class="" href="/blog/projects.html">projects</a></span>
        <span><a title="subscribe me" class="" href="/blog/atom.xml">feed</a></span>
        </nav>
        <article class="content">
        <section class="post">
<p>走到今天，中国雅虎终于结束了其艰辛、曲折、多舛、充满变化的命运，结束，不一定是坏事，至少能够让人更清晰更理智的对待过去。作为我的第一份工作，在雅虎的这段经历确实带给我很多很深的思考、和一些终身受用的知识和道理，只是这种变化来的剧烈，亦忧亦喜的影响着身在其中的每一个人，前两天还在抱怨蒋大仙人作的“YAHOO Engineer@CN”的T恤的各种瑕疵，突然就成了绝版，怎能不让人心生感慨。不管是遗憾、还是无奈，不论是终结、还是重生、这种缺憾美，仍然深深的感染着那些曾经真正在乎过yahoo的每一个人。</p>

<p>我第一次接触雅虎是在大学一年级的时候，那时第一次去学校机房就作了两件事，申请了一个163的信箱，在雅虎注册了一个帐号，接下来的一段时间里常泡在雅虎聊天室中，直到有了自己的QQ号。当时的雅虎聊天室和现在雅虎通上的聊天室很类似，简单易用，当时163的聊天室人很少，碧海银沙人多热闹但很难用，甚至每次都要用鼠标去点击“发送“才能发言……之后雅虎在功能设计上一直秉承这种实用易用的风格，在界面设计上更是讲究风格简洁内容充实，最经典的就是06年版（也就是雅虎首页改版的上一版），随后网易开始模仿这种淡雅的设计一直沿用至今……</p>

<p>因此在设计上，雅虎保持这种充实简洁实用易用的理念，步步为营的加深着每个人对yahoo形象的印象。从技术的角度讲，雅虎是一个技术主导的公司，它的每个产品背后都有着多层次的技术沉淀，经典的雅虎技术栈是这种沉淀的一种形象概括，成为在每次新员工培训必讲的内容。另外，由于团队庞大，技术也比较复杂和多元，从上层的php到底层的c，从前端的 html到后端的yapache，都体现出多元化的工程师给雅虎技术注入的新元素。最重要的，成熟的技术和充实的积累使得设计师将更多的精力放在纯粹艺术的设计上，而不必太过担心实现的难度以及性能问题。因此，产品设计和技术实现之间的良性互动使得雅虎产品创意十足的同时又能保证质量上乘。很遗憾的是，这个良好的传统在中国雅虎则没有坚持下来，原因很复杂，也没必要去追究的太细，权当一种缺憾吧。</p>

<p>因此，技术的积累永远不是坏事，此外，勤劳的雅虎工程师在作研发的同时也在时刻整理文档，我所见到的yahoo twiki，从入门到提高，从底端到高端，从理论到技巧、从开源社区到开发者论坛，都是内容丰富全面的，全球雅虎任何子公司的技术资料都为我共享，在 yahoo twiki这个知识仓库中永远不会让人觉得枯燥乏味，也只有最朴实的工程师才能如此兢兢业业的做到事无巨细的记录和备份，如此踏实谦虚的营造一种良好的学习氛围，并深深的让人陶醉其中。</p>

<p>但知识的积累要转化成高质量的产品则需要组织和工程。在雅虎，多元的技术不代表没有标准和规范，反之，标准和规范无时无刻不在，影响着雅虎的产品甚至成为行业标准，css mojo、sns的iframe框架规范、yahoo商标规范等等，从ui标准到DPL，从接口的统一设计到性能的测试标准、从产品设计到实现，详尽的标准和复杂的规范使得产品可控性强，同时使得团队开发中的进度统一，协作高效。说到yahoo的商标规范，竟然落里罗嗦的有一百多页，我都ft了。作为一个全球统一的技术体系，雅虎的软件管理则延承了linux的包管理方式，yinst包管理做到了全球共享统一管理，包括雅虎关系在内的所有产品的发布都依赖于这个庞杂的包管理系统，产品升级仅仅相当于软件版本升级，如此，产品的部署将更加灵活，再复杂的产品的安装只像装包一样简单。在关系的前端开发中，为了简化操作流程我作了一个yimg的管理工具，专门应用于关系的前端开发，工具作好后不用拷贝到每个机器上再安装，只要在开发机上用install命令就可以自动安装最新版本。这种方便的包管理是很值得学习和仿效的。</p>

<p>所以，与其说是雅虎技术影响着每一代人，不如说这种开源共享开放的文化感染着每一代人，之前从雅虎走出去的很多牛人，对此也都深有体会。只是中国雅虎不成功的产品带给人很多遗憾，“每个人都从雅虎满载而归，却似不曾为他真正奉献过什么“，权当这是对自己的一种小小谴责吧。然而雅虎那由内而外处处散发着脱俗的实用主义的美感，留给人很多难忘的回忆。</p>

<p>仅已上文，祭奠我在雅虎的每个日日夜夜。但愿这是一个美好的开始，而不是无奈结束。</p>

</section>
<section class="meta">

<!--span class="tags">
  tagged by 
  
</span-->

<span class="time">
  posted at <time datetime="2009-09-01">2009-09-01</time>
</span>
</section>

<section class="comment">
<div id="disqus_thread"></div>
<script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = 'jayliblog'; // required: replace example with your forum shortname
	var disqus_identifier = 'urn:uuid:7c9d6639-de99-4171-945e-12b84f0f4027';

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</section>


        </article>
      </div>
    </div> <!--! end of #container -->
  </body>
</html>
